export type GetUserListRequestData = {
  page: number,
  size: number
}

export type AddUserRequestData = {
  username: string;
  nickname: string;
  password: string;
  email: string;
  phoneNumber: string | null;
}

export type DeleteUserRequestData = {
  id: number
}

export type GetRoleListRequestData = {
  page: number,
  size: number
}

export type Role = {
  id: number;
  name: string;
};

export type User = {
  id: number;
  username: string;
  nickname: string;
  countryCode: string | null;
  regionCode: string | null;
  gender: string | null;
  birthDate: string | null;
  email: string;
  isBan: string | null;
  phoneNumber: string | null;
  avatarUrl: string | null;
  roles: Role[];
  permissions: any[];
};

export type UserListData = {
  content: User[];
  pageable: Pageable;
  last: boolean;
  totalPages: number;
  totalElements: number;
  size: number;
  number: number;
  sort: Sort;
  numberOfElements: number;
  first: boolean;
  empty: boolean;
};

export type RoleListData = {
  cotnent: Role[];
  pageable: Pageable;
  last: boolean;
  totalPages: number;
  totalElements: number;
  size: number;
  number: number;
  sort: Sort;
  numberOfElements: number;
  first: boolean;
  empty: boolean;
}


export type GetUserListResponseData = ApiResponseData<UserListData>

export type GetRoleListResposneData = ApiResponseData<RoleListData>
